#include <stdio.h>

/**
 * 数组的使用场景？
 * 
 * 创建一个数组
 * 遍历数组
 *  好几种方式
 * 打印数组
 * 
 * 修改数组一个位置上的值
 * 
 * 
 * malloc法
 * 长度可以是代码里的变量
 * 可以通过函数返回出去
 */

void Test() {
    // 声明
    int arr[12] = {1, 2, 3, 4, 5, 6, 7};

    int arr[  ] = {  };

    
    // 打印
    for (int i = 0; i < 12; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");
}

int* Test1() {
    // 在函数内部声明一个数组并把地址返回，这能行吗？
    int arr[10] = {1, 2, 3};
    // return &arr;
    return arr;  // 显然这不行，因为arr已经被释放了，但是还是能运行
}

void PrintArray(int* arr, int len) {
    printf("[");
    for (int i = 0; i < len; i++) {
        printf("%d ", arr[i]);
    }
    printf("]\n");
}

void Test3() {
    // int len = 15;
    // int arr[len] = {};

}

int main() {
    // test();
    int* a = Test1();
    PrintArray(a, 10);

    return 0;
}
